﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MyCode.Project.Domain.Message.Request.Million
{
    #region 设置店铺业绩计算方式
    public class KPIModelReq
    {
        /// <summary>
        /// 店铺ID；加盟商选中时需传
        /// </summary>
        public Guid? ShopID { get; set; }

        /// <summary>
        /// 方式对应值
        /// </summary>
        public int Model { get; set; }
    }
    #endregion

    #region 店员指标设置
    public class MonthKPIReq
    {
        /// <summary>
        /// 指标类型 0：月度 1：日指标
        /// </summary>
        public int TargetType { get; set; }

        /// <summary>
        /// 店铺ID；加盟商保存时需传
        /// </summary>
        public Guid? ShopID { get; set; }

        /// <summary>
        /// 各个店员指标设置明细
        /// </summary>
        public List<KPIDetailReq> ClerkDetail { get; set; }
    }
    public class KPIDetailReq
    {
        /// <summary>
        /// Desc:店员ID
        /// Default:
        /// Nullable:False
        /// </summary>           
        public Guid ClerkID { get; set; }

        /// <summary>
        /// 店员名称
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// Desc:业绩指标(元)
        /// Default:
        /// Nullable:False
        /// </summary>           
        public decimal? Qty { get; set; }
    }
    #endregion

    #region 店员拓客指标设置
    public class ExtensionReq
    {
        /// <summary>
        /// 指标类型 0：月度 1：日指标
        /// </summary>
        public int TargetType { get; set; }

        /// <summary>
        /// 店铺ID；加盟商保存时需传
        /// </summary>
        public Guid? ShopID { get; set; }

        /// <summary>
        /// 各个店员指标设置明细
        /// </summary>
        public List<ExtensionDetailReq> ClerkDetail { get; set; }
    }
    public class ExtensionDetailReq
    {
        /// <summary>
        /// Desc:店员ID
        /// </summary>           
        public Guid ClerkID { get; set; }

        /// <summary>
        /// 店员名称
        /// </summary>
        public string Name { get; set; }

        ///// <summary>
        ///// 老顾客人数
        ///// </summary>
        //public int? RegularQty { get; set; }

        /// <summary>
        /// 新顾客人数
        /// </summary>
        public int? Qty { get; set; }
    }
    #endregion

    #region 店员邀约指标设置
    public class InviteReq
    {
        /// <summary>
        /// 指标类型 0：月度 1：日指标
        /// </summary>
        public int TargetType { get; set; }

        /// <summary>
        /// 店铺ID；加盟商保存时需传
        /// </summary>
        public Guid? ShopID { get; set; }

        /// <summary>
        /// 各个店员指标设置明细
        /// </summary>
        public List<InviteDetailReq> ClerkDetail { get; set; }
    }
    public class InviteDetailReq
    {
        /// <summary>
        /// Desc:店员ID
        /// </summary>           
        public Guid ClerkID { get; set; }

        /// <summary>
        /// 店员名称
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 邀约人数
        /// </summary>
        public int? Qty { get; set; }
    }
    #endregion

    #region 店员护理指标设置
    public class NurseReq
    {
        /// <summary>
        /// 指标类型 0：月度 1：日指标
        /// </summary>
        public int TargetType { get; set; }

        /// <summary>
        /// 店铺ID；加盟商保存时需传
        /// </summary>
        public Guid? ShopID { get; set; }

        /// <summary>
        /// 各个店员指标设置明细
        /// </summary>
        public List<NurseDetailReq> ClerkDetail { get; set; }
    }
    public class NurseDetailReq
    {
        /// <summary>
        /// Desc:店员ID
        /// </summary>           
        public Guid ClerkID { get; set; }

        /// <summary>
        /// 店员名称
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 护理人数
        /// </summary>
        public int? Qty { get; set; }
    }
    #endregion

    #region 店员体验指标设置
    public class ExperienceReq
    {
        /// <summary>
        /// 指标类型 0：月度 1：日指标
        /// </summary>
        public int TargetType { get; set; }

        /// <summary>
        /// 店铺ID；加盟商保存时需传
        /// </summary>
        public Guid? ShopID { get; set; }

        /// <summary>
        /// 各个店员指标设置明细
        /// </summary>
        public List<ExperienceDetailReq> ClerkDetail { get; set; }
    }
    public class ExperienceDetailReq
    {
        /// <summary>
        /// Desc:店员ID
        /// </summary>           
        public Guid ClerkID { get; set; }

        /// <summary>
        /// 店员名称
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 体验人数
        /// </summary>
        public int? Qty { get; set; }
    }
    #endregion

    #region 店员裂变指标设置
    public class FissionReq
    {
        /// <summary>
        /// 指标类型 0：月度 1：日指标
        /// </summary>
        public int TargetType { get; set; }

        /// <summary>
        /// 店铺ID；加盟商保存时需传
        /// </summary>
        public Guid? ShopID { get; set; }

        /// <summary>
        /// 各个店员指标设置明细
        /// </summary>
        public List<FissionDetailReq> ClerkDetail { get; set; }
    }
    public class FissionDetailReq
    {
        /// <summary>
        /// 店员ID
        /// </summary>           
        public Guid ClerkID { get; set; }

        /// <summary>
        /// 店员名称
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 人数
        /// </summary>
        public int? Qty { get; set; }
    }
    #endregion

    #region 早会旺场指标设置
    public class ZHWCReq
    {
        /// <summary>
        /// 店铺ID；加盟商保存时需传
        /// </summary>
        public Guid? ShopID { get; set; }

        /// <summary>
        /// 当前操作类型 0：店长分配任务 1：店员提交数据 2：店长审核
        /// </summary>
        public int Flag { get; set; }

        /// <summary>
        /// 各个店员指标设置明细
        /// </summary>
        public List<ZHWCDetailReq> ClerkDetail { get; set; }
    }
    public class ZHWCDetailReq
    {
        /// <summary>
        /// Desc:店员ID
        /// </summary>           
        public Guid ClerkID { get; set; }

        /// <summary>
        /// 店员名称
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 实际数量
        /// </summary>
        public int? Qty { get; set; }

        /// <summary>
        /// 目标数量
        /// </summary>
        public int? TargetQty { get; set; }
    }
    #endregion

    #region 店员提交自己的五项指标数据给店长
    public class ZHResultReq
    {
        /// <summary>
        /// 消息公告主键ID
        /// </summary>
        public Guid ID { get; set; }

        /// <summary>
        /// 业绩指标数据
        /// </summary>
        public ZHKPIAuditDetailReq KPIResult { get; set; }

        /// <summary>
        /// 纳新指标数据
        /// </summary>
        public ZHAuditDetailReq NewResult { get; set; }

        /// <summary>
        /// 邀约指标数据
        /// </summary>
        public ZHAuditDetailReq InviteResult { get; set; }

        /// <summary>
        /// 护理指标数据
        /// </summary>
        public ZHAuditDetailReq NurseResult { get; set; }

        /// <summary>
        /// 体验指标数据
        /// </summary>
        public ZHAuditDetailReq ExperienceResult { get; set; }
    }
    public class ZHKPIAuditDetailReq
    {
        /// <summary>
        /// 实际业绩
        /// </summary>
        public decimal Qty { get; set; }

        /// <summary>
        /// 目标业绩
        /// </summary>
        public decimal TargetQty { get; set; }
    }

    public class ZHAuditDetailReq
    {
        /// <summary>
        /// 实际数量
        /// </summary>
        public int Qty { get; set; }

        /// <summary>
        /// 目标数量
        /// </summary>
        public int TargetQty { get; set; }
    }
    #endregion

    #region 店员查看自己早旺场指标任务和查看本人早旺场数据
    public class ZHWCResultReq
    {
        /// <summary>
        /// 消息-任务公告主键ID
        /// </summary>
        public Guid ID { get; set; }

        /// <summary>
        /// 提交的数据
        /// </summary>
        public List<ZHWCResultList> List { get; set; }
    }

    public class ZHWCResultList
    {
        /// <summary>
        /// 主键ID
        /// </summary>
        public Guid Id { get; set; }

        /// <summary>
        /// 是否可以修改 0：不可以 1：可以修改 (店长已审核此项指标，不能修改)
        /// </summary>
        public int IsModify { get; set; }

        /// <summary>
        /// 实际数量
        /// </summary>
        public int Qty { get; set; }

        /// <summary>
        /// 目标数量
        /// </summary>
        public int TargetQty { get; set; }
    }
    #endregion
}
